"""
定义一个函数：
def 函数名(参数1, 参数2, ...):
    文档字符串（可选）
    函数体
    return 返回值（可选）
使用def关键字，确定函数的名称，参数的名称，参数的个数，编写函数体。用于实现函数功能的代码
"""
# 1.函数的定义与调用
# 1.1:定义一个无参数无返回值的函数
def hello():
    print("hello python")
hello()

# 1.2：定义一个有返回值没有参数的函数
def sum1():
    a = 1
    b = 2
    c = a + b
    return c
result = sum1()
print(result)


# 2:函数的参数类型
# 2.1:必须参数
def sum2(a, b):
    c = a + b
    return c
result = sum2(1, 4)
print(result)

# 2.2:默认参数
def sum3(a, b,c=4):
    d = a + b + c
    return d
result = sum3(1, 2,4)
print(result)

# 2.3:可变参数
def sum4(*args):  # *args表示可变参数,可以定义多个值
    total = 0
    for i in args:
        total += i
    return total
result = sum4(1, 2, 3, 4, 5)
print(result)

# 2.4:混合参数
def sum5(a, b, *args):
    sum = a + b
    for i in args:
        sum += i
    return sum
result = sum5(1, 2, 3, 4, 5)


# 练习一:定义一个函数名person，参数名name名字，age年龄，格式化输出，我是xxx，今年xxx岁
def person(name,age):
    print(f"我是{name},今年{age}岁")
person("小王",18)

# 练习二:定义一个混合函数，参数包括n. 和*args. 将args里面的元素相乘，最后除以n返回
def mix(n,*args):
   total = 1
   for i in args:
       total *= i
   return total/n
result = mix(2,1,2,3,4,5)
print(result)